<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Javascript继承-原型继承</title>
</head>

<body>
    <script>
        /**
         * 原型式继承: 子类的原型对象是父类的实例
         * 
         * */
        function PersonModel() {
            this.name = '马冬梅'; //父类构造器的属性
            this.age = 30;
            this.skill = ['唱歌', '跳舞', '开车']
        }
        PersonModel.prototype.eat = function (food) { //父类原型链上的方法
            console.log(`吃一些${food}`)
        }

        function Person() {
            this.name = '张学友' //子类构造器的属性
        }
        Person.prototype = new PersonModel();
        let person1 = new Person()
        let person2 = new Person()
        console.log('person1 与 person2 的名字是:', person1.name + '__' + person2.name)
        //年龄是从父类的实例上继承过来的
        console.log('person1 与 person2 的年龄是:', person1.age + '__' + person2.age)
        //给person1的技能添加一个喝酒
        person1.skill.push('喝酒')
        //Person原型对象上的属性被两个实例共享
        console.log('person1 与 person2 的技能是:', person1.skill + '__' + person2.skill)
    </script>
</body>

</html>